home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / smalleiffel / lib_iterator / iterator.e < prev   
Text File  |  2000-03-25  |  1KB  |  49 lines

  1. -- This file is  free  software, which  comes  along  with  SmallEiffel. This
  2. -- software  is  distributed  in the hope that it will be useful, but WITHOUT 
  3. -- ANY  WARRANTY;  without  even  the  implied warranty of MERCHANTABILITY or
  4. -- FITNESS  FOR A PARTICULAR PURPOSE. You can modify it as you want, provided
  5. -- this header is kept unaltered, and a notification of the changes is added.
  6. -- You  are  allowed  to  redistribute  it and sell it, alone or as a part of 
  7. -- another product.
  8. --          Copyright (C) 1994-98 LORIA - UHP - CRIN - INRIA - FRANCE
  9. --            Dominique COLNET and Suzanne COLLIN - colnet@loria.fr 
  10. --                       http://SmallEiffel.loria.fr
  11. --
  12. deferred class ITERATOR[E]
  13. --
  14. -- The iterator pattern at work: this abstract class defines a 
  15. -- traversal interface for any kind of aggregates data structure.
  16. --
  17.  
  18. feature
  19.  
  20.    start is
  21.      -- Positions the iterator to the first object in the 
  22.      -- aggregate to be traversed.
  23.       deferred
  24.       end;
  25.  
  26.    is_off: BOOLEAN is
  27.      -- Returns true when there are no more objects in the
  28.      -- sequence.
  29.       deferred
  30.       end;
  31.  
  32.    item: E is
  33.      -- Returns the object at the current position in the 
  34.      -- sequence.
  35.       require
  36.      not is_off
  37.       deferred
  38.       end;
  39.  
  40.    next is
  41.      -- Positions the iterator to the next object in the 
  42.      -- sequence.
  43.       require
  44.      not is_off
  45.       deferred
  46.       end;
  47.  
  48. end
  49.